iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 10
0
Blockchain

商管學生如何從零開始學習區塊鏈系列 第 10

DAY10 以太坊區塊鏈中的帳戶和Gas是甚麼?

  • 分享至 

  • xImage
  •  

前幾篇我們通過一個簡單的例子示範了怎麼使用Remix,並且發布了一個有簡單儲存功能的智能合約,今天我們來繼續深入了解以太坊區塊鏈。

來簡單帶大家回顧一下,比特幣區塊鏈和以太坊區塊鏈的不同在哪裡?比特幣使用的是UTXO模型,每筆交易的輸入輸出都是UTXO,並且交易會引用已存在的UTXO去生成新的輸入;不同於比特幣,以太坊有智能合約,智能合約的設計實現了商業邏輯,交易不在只是貨幣的轉移,而是可以執行更複雜的操作,例如,有條件的交易。

智能合約讓區塊鏈技術能做到更廣泛的應用,加上對區塊鏈進行訪問權限的控制,可以實現許多不同的商業模式,根據訪問權限的限制,區塊鏈分為公有鏈、私有鏈和許可區塊鏈,比特幣和以太坊就是公有區塊鏈類很好的例子,任何人都可以按照自己的意願加入和離開;在私有鏈中,區塊鏈的訪問僅限於特定參與者,例如公司內部成員;區塊鏈的第三種類型是聯盟鏈,例如,汽車公司聯盟或醫療組織聯盟。

以太坊引入帳戶的概念,在帳戶之間的交易可能導致狀態(state)轉換,我們也在Remix上的簡單儲存功能中示範過,因為有智能合約,所以帳戶又分成外部帳戶(EOA)和合約帳戶(CA)兩種類型,簡單來說,外部帳戶(EOA)就是你在以太坊區塊鏈會有的帳戶,而合約帳戶(CA)是智能合約發布後,都會產一個對應的合約帳戶外部帳戶(EOA)具有公鑰(public key)和私鑰(private key),外部帳戶受私鑰所控制,如果弄丟了私鑰,會失去帳戶的控制權。

以太坊區塊鏈內進行的任何交易或是執行智能合約都要支付手續費給礦工,交易手續費以Gas計算,帳戶中必須有足夠的餘額去支付手續費才能啟動交易,支付費用單位是Wei,一個以太幣(Ether)會等於10的18次個wei,一個Gwei等於10的9次個wei,Gas Price代表你願意為支付給礦工的費用,想讓交易更快被礦工驗證然後加入區塊鏈的話,就需要調高你的Gas PriceGas Limit是你願意花費多少Gas,也就是Gas的數量,一般標準交易Gas Limit為21000,那我們付給礦工的交易手續費(Tx Fee)就是Gas Price 乘以Gas Limit ,價格乘以數量就是我們支付的總金額。

與比特幣相比,以太坊區塊鏈的設計更加複雜,我想狀態的轉換、外部帳戶(EOA)和合約帳戶(CA)以及交易費用Gas是相對好理解的,下一篇我將帶大家了解以太坊區塊鏈中用來有效驗證的技術—非對稱密鑰加密,那我們明天見~


上一篇
DAY9 為什麼所有人看到的智能合約狀態是一致的?
下一篇
DAY11 甚麼是非對稱密鑰加密?
系列文
商管學生如何從零開始學習區塊鏈30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
日安小白鴿
iT邦新手 5 級 ‧ 2019-10-06 13:52:06

你寫的文章很棒,連我這個法律畢業半路出家走入IT圈的老人家也秒懂,感謝。
有一句話不太瞭解,你說「以太坊區塊鏈內進行的任何交易或是執行智能合約都要支付手續費給礦工,交易手續費以Gas計算,帳戶中必須有足夠的餘額去支付手續費才能啟動交易」,這裡的「帳戶」是指外部帳戶(EOA)還是合約帳戶(CA)?

wayne525 iT邦新手 5 級 ‧ 2019-10-06 15:06:53 檢舉

感謝你的支持!我的文章中的「帳戶」是指外部帳戶(EOA),我們想要進行交易,我們會先創建我們的新帳戶(EOA),這裡並不會花費任何gas,但是我們有了外部帳戶後,我們要創建和去使用我們的合約帳戶(CA)都需要花費gas,因為合約帳戶(CA)會使用區塊鏈網絡的計算和儲存資源。另外,我們的外部帳戶與其他外部帳戶間可以進行交易,但是與合約帳戶之間卻並非交易,而是啟動合約帳戶內的程式碼去執行各種操作(例如,傳輸代幣、創造新代幣或,執行一些計算等)。

我要留言

立即登入留言